package com.extension.company;

import android.app.Application;
import android.content.Context;
import android.support.multidex.MultiDex;

import com.demo.gtpush.GTPushServer;
import com.demo.gtpush.IntentService;
import com.extension.company.common.utils.SharedPreferenceUtils;
import com.igexin.sdk.PushManager;
import com.tencent.bugly.crashreport.CrashReport;
import com.tencent.mm.opensdk.openapi.IWXAPI;
import com.tencent.mm.opensdk.openapi.WXAPIFactory;
import com.umeng.analytics.MobclickAgent;
import com.umeng.commonsdk.UMConfigure;
import com.umeng.socialize.PlatformConfig;
import com.wuhenzhizao.sku.use.image.GImageLoader;

import okhttp3.OkHttpClient;

/**
 * app入口
 */
public class MyApplication extends Application {
	private static Context mApplicationContext;
	public static IWXAPI iwxapi;


	@Override
	protected void attachBaseContext(Context base) {  // 处理文件超过65535的方法
		super.attachBaseContext(base);
		MultiDex.install(this);
	}

	@Override
	public void onCreate() {
		super.onCreate();
		mApplicationContext = this;
		SharedPreferenceUtils.init(this);  // 全局的SharePreference的初始化
		initUM();  // 初始化友盟
		initWXPay(); // 初始化微信支付
		initBugly(); // 初始化腾讯bugly日志收集
		initGTPush();// 个推
		initFrescoImgLoad();

	}
	/**
	 * 友盟初始化
	 */
	private void initUM() {
		//友盟初始化，s2需要推送的key
		UMConfigure.init(this, KEY.UmAppKey, "Umeng",
				UMConfigure.DEVICE_TYPE_PHONE, "");
		// 页面统计, 选用AUTO页面采集模式
		MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.AUTO);
		PlatformConfig.setWeixin("wx0ee56f81295b58ca", "3f7579598382ac236ce97524628e118e");
		PlatformConfig.setQQZone("101543878", "1ea49e8010a3d4268996769d9cdc0213");
		PlatformConfig.setSinaWeibo("2776957379", "18022eae8bc9597ae569b501087e32b5", "http://sns.whalecloud.com");

		UMConfigure.setLogEnabled(true);
		UMConfigure.setEncryptEnabled(false);
	}

	/**
	 * 微信登录、支付appId注册
	 */
	private void initWXPay() {
		iwxapi = WXAPIFactory.createWXAPI(this, KEY.WX_PAY_ID);
		iwxapi.registerApp(KEY.WX_PAY_ID);
	}

	/**
	 * 初始化腾讯bug上报日志,release版本 设置为false
	 */
	private void initBugly() {
		CrashReport.initCrashReport(this, "89ed961062", true);
	}

	/**
	 * 初始化个推
	 */
	private void initGTPush() {
		PushManager.getInstance().initialize(this, GTPushServer.class);
		PushManager.getInstance().registerPushIntentService(this, IntentService.class);
	}

	/**
	 * sku规格选择的加载图片的初始化
	 */
	private void initFrescoImgLoad() {
		GImageLoader.init(this, new OkHttpClient.Builder().build());
	}

	/**
	 * 方法：提供获取全局context的方法
	 *
	 * @return application 的context
	 */
	public static Context getContext() {
		return mApplicationContext;
	}


}
